package com.youlai.boot.gym.model.form;

import java.io.Serial;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDate;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.*;

/**
 * 会员管理表单对象
 *
 * @author hxc
 * @since 2025-06-01 11:27
 */
@Getter
@Setter
@Schema(description = "会员管理表单对象")
public class MembersForm implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;


    @Schema(description = "姓名")
    @NotBlank(message = "姓名不能为空")
    @Size(max=50, message="姓名长度不能超过50个字符")
    private String memberName;

    @Schema(description = "性别 ")
    @NotNull(message = "性别 不能为空")
    private Integer gender;

    @Schema(description = "出生日期")
    private LocalDate birthDate;

    @Schema(description = "联系电话")
    @NotBlank(message = "联系电话不能为空")
    @Size(max=20, message="联系电话长度不能超过20个字符")
    private String phone;

    @Schema(description = "电子邮箱")
    @Size(max=100, message="电子邮箱长度不能超过100个字符")
    private String email;

    @Schema(description = "会员开始日期")
    @NotNull(message = "会员开始日期不能为空")
    private LocalDate membershipStart;

    @Schema(description = "会员结束日期")
    @NotNull(message = "会员结束日期不能为空")
    private LocalDate membershipEnd;

    @Schema(description = "会员状态")
    private Integer memberStatus;

    @Schema(description = "备注信息")
    @Size(max=65535, message="备注信息长度不能超过65535个字符")
    private String notes;


}
